package com.xxgc.eow.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 发表文章
 * </p>
 *
 * @author Mr.Abel
 * @since 2023-05-21
 */
@Getter
@Setter
@Schema(name = "Article", description = "发表文章")
public class Article implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "文章id")
    @TableId(value = "article_id", type = IdType.AUTO)
    private Integer articleId;

    @Schema(description = "用户id")
    private Integer userId;

    @Schema(description = "文章标题")
    private String articleTitle;

    @Schema(description = "发表内容")
    private String articleContent;

    @Schema(description = "发表内容不带html标签")
    private String articleText;

    @Schema(description = "点赞数")
    private Integer articleLike;

    @Schema(description = "视频路径")
    private String video;

    @Schema(description = "收藏数")
    private Integer artuckeCollect;

    @Schema(description = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    @Schema(description = "销毁时间")
    private LocalDateTime destroyTime;

    @Schema(description = "假删除状态")
    private Byte tip;

    @Schema(description = "分享数")
    private Integer shareNum;

    @TableField(exist = false)
    private String titleName;

    @Schema(description = "文章类型")
    @TableField(exist = false)
    private List<String> titleNames;

    @Schema(description = "文章封面图片")
    @TableField(exist = false)
    private String coverImage;

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public Integer getArticleId() {
        return articleId;
    }

    public void setArticleId(Integer articleId) {
        this.articleId = articleId;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getArticleTitle() {
        return articleTitle;
    }

    public void setArticleTitle(String articleTitle) {
        this.articleTitle = articleTitle;
    }

    public String getArticleContent() {
        return articleContent;
    }

    public void setArticleContent(String articleContent) {
        this.articleContent = articleContent;
    }

    public String getArticleText() {
        return articleText;
    }

    public void setArticleText(String articleText) {
        this.articleText = articleText;
    }

    public Integer getArticleLike() {
        return articleLike;
    }

    public void setArticleLike(Integer articleLike) {
        this.articleLike = articleLike;
    }

    public String getVideo() {
        return video;
    }

    public void setVideo(String video) {
        this.video = video;
    }

    public Integer getArtuckeCollect() {
        return artuckeCollect;
    }

    public void setArtuckeCollect(Integer artuckeCollect) {
        this.artuckeCollect = artuckeCollect;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public LocalDateTime getDestroyTime() {
        return destroyTime;
    }

    public void setDestroyTime(LocalDateTime destroyTime) {
        this.destroyTime = destroyTime;
    }

    public Byte getTip() {
        return tip;
    }

    public void setTip(Byte tip) {
        this.tip = tip;
    }

    public Integer getShareNum() {
        return shareNum;
    }

    public void setShareNum(Integer shareNum) {
        this.shareNum = shareNum;
    }

    public String getTitleName() {
        return titleName;
    }

    public void setTitleName(String titleName) {
        this.titleName = titleName;
    }

    public List<String> getTitleNames() {
        return titleNames;
    }

    public void setTitleNames(List<String> titleNames) {
        this.titleNames = titleNames;
    }

    public String getCoverImage() {
        return coverImage;
    }

    public void setCoverImage(String coverImage) {
        this.coverImage = coverImage;
    }

    @Override
    public String toString() {
        return "Article{" +
                "articleId=" + articleId +
                ", userId=" + userId +
                ", articleTitle='" + articleTitle + '\'' +
                ", articleContent='" + articleContent + '\'' +
                ", articleText='" + articleText + '\'' +
                ", articleLike=" + articleLike +
                ", video='" + video + '\'' +
                ", artuckeCollect=" + artuckeCollect +
                ", createTime=" + createTime +
                ", destroyTime=" + destroyTime +
                ", tip=" + tip +
                ", shareNum=" + shareNum +
                ", titleName='" + titleName + '\'' +
                ", titleNames=" + titleNames +
                ", coverImage='" + coverImage + '\'' +
                '}';
    }
}
